﻿// Decompiled with JetBrains decompiler
// Type: UnityEngine.tvOS.Remote
// Assembly: UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: E6AE6B5A-2752-4B07-9528-C8B77C62CE79
// Assembly location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll
// XML documentation location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.xml

using System.Runtime.CompilerServices;
using UnityEngine.Bindings;

#nullable disable
namespace UnityEngine.tvOS
{
  /// <summary>
  ///   <para>A class for Apple TV remote input configuration.</para>
  /// </summary>
  [NativeHeader("PlatformDependent/iPhonePlayer/IOSScriptBindings.h")]
  public sealed class Remote
  {
    /// <summary>
    ///   <para>Configures how "Menu" button behaves on Apple TV Remote. If this property is set to true hitting "Menu" on Remote will exit to system home screen. When this property is false current application is responsible for handling "Menu" button. It is recommended to set this property to true on top level menus of your application.</para>
    /// </summary>
    public static extern bool allowExitToHome { [NativeConditional("PLATFORM_TVOS"), FreeFunction("UnityGetAppleTVRemoteAllowExitToMenu"), MethodImpl(MethodImplOptions.InternalCall)] get; [FreeFunction("UnitySetAppleTVRemoteAllowExitToMenu"), NativeConditional("PLATFORM_TVOS"), MethodImpl(MethodImplOptions.InternalCall)] set; }

    /// <summary>
    ///   <para>Configures if Apple TV Remote should autorotate all the inputs when Remote is being held in horizontal orientation. Default is false.</para>
    /// </summary>
    public static extern bool allowRemoteRotation { [FreeFunction("UnityGetAppleTVRemoteAllowRotation"), NativeConditional("PLATFORM_TVOS"), MethodImpl(MethodImplOptions.InternalCall)] get; [FreeFunction("UnitySetAppleTVRemoteAllowRotation"), NativeConditional("PLATFORM_TVOS"), MethodImpl(MethodImplOptions.InternalCall)] set; }

    /// <summary>
    ///   <para>Configures how touches are mapped to analog joystick axes in relative or absolute values. If set to true it will return +1 on Horizontal axis when very far right is being touched on Remote touch aread (and -1 when very left area is touched correspondingly). The same applies for Vertical axis too. When this property is set to false player should swipe instead of touching specific area of remote to generate Horizontal or Vertical input.</para>
    /// </summary>
    public static extern bool reportAbsoluteDpadValues { [FreeFunction("UnityGetAppleTVRemoteReportAbsoluteDpadValues"), NativeConditional("PLATFORM_TVOS"), MethodImpl(MethodImplOptions.InternalCall)] get; [NativeConditional("PLATFORM_TVOS"), FreeFunction("UnitySetAppleTVRemoteReportAbsoluteDpadValues"), MethodImpl(MethodImplOptions.InternalCall)] set; }

    /// <summary>
    ///         <para>Disables Apple TV Remote touch propagation to Unity Input.touches API. Useful for 3rd party frameworks, which do not respect Touch.type == Indirect.
    /// Default is false.</para>
    ///       </summary>
    public static extern bool touchesEnabled { [FreeFunction("TVOSScripting::GetRemoteTouchesEnabled"), MethodImpl(MethodImplOptions.InternalCall)] get; [FreeFunction("UnitySetAppleTVRemoteTouchesEnabled"), NativeConditional("PLATFORM_TVOS"), MethodImpl(MethodImplOptions.InternalCall)] set; }
  }
}
